package com.appspot.bs24event.controller.member.photo;

import java.net.URL;
import java.util.ResourceBundle;

import org.apache.log4j.Logger;
import org.slim3.controller.BaseController;
import org.slim3.controller.Navigation;

import com.google.gdata.client.photos.PicasawebService;
import com.google.gdata.data.photos.UserFeed;

/**
 * AlbumListControllerクラス。
 * @version $Id: AlbumListController.java 166 2011-08-11 03:42:48Z bs24event@gmail.com $
 */
public class AlbumListController extends BaseController {

    /** ログ */
    protected static final Logger logger = Logger.getLogger(AlbumListController.class.getName());

    /** リソースバンドル */
    private static ResourceBundle settingProperties = ResourceBundle.getBundle("setting");

    @Override
    protected Navigation setUp() {
        logger.info(this.getClass().getName() + " start.");
        return super.setUp();
    }

    @Override
    protected void tearDown() {
        logger.info(this.getClass().getName() + " end.");
        super.tearDown();
    }

    @Override
    public Navigation run() throws Exception {
        // プロパティ値を取得
        String applicationName   = settingProperties.getString("application.name");
        String googleAccountId   = settingProperties.getString("google.account.id");
        String googleAccountPass = settingProperties.getString("google.account.pass");
        String albumFeedUrl      = settingProperties.getString("album.feed.url");

        try {
            // Picasaウェブアルバムに接続
            PicasawebService myService = new PicasawebService(applicationName);
            myService.setUserCredentials(googleAccountId, googleAccountPass);
            URL feedUrl = new URL(albumFeedUrl);
            UserFeed myUserFeed = myService.getFeed(feedUrl, UserFeed.class);

            // リクエストアトリビュートの設定
            request.setAttribute("myAlbums", myUserFeed.getAlbumEntries());
        } catch (Exception e) {
            logger.warn("Picasaウェブアルバム接続時にエラーが発生しました。",e);
        }

        // フォトアルバム一覧画面へ遷移
        return forward(request, "albumList.jsp", true, true);
    }
}
